Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add iterative searcher to Foldseek #97

Merged
merged 4 commits into from
Dec 27, 2024

Conversation

martin-steinegger
Copy link
Member

No description provided.

@@ -168,14 +213,16 @@ export default {
return {
inSearch: false,
errorMessage: "",
mode: storage.getItem('mode') || this.$STRINGS.MODE_DEFAULT_KEY,
showCurl: false,
mode: this.$STRINGS.MODE_DEFAULT_KEY,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please restore the previous version

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

</v-flex>
</v-layout>
<reference :reference="$STRINGS.CITATION"></reference>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please restore the previous version

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

({{
databases.filter(db => database.includes(db.path)).map(db => db.name).sort().join(", ")
}})
</template> with {{ $STRINGS.APP_NAME }} in <strong>{{ modes[mode] }}</strong> mode<span v-if="iterativeSearch"><strong> iterative</strong></span>.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add iterative to beginning of sentence

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Comment on lines 99 to 136
<v-item-group class="v-btn-toggle">
<v-btn color="primary" :block="false" x-large v-on:click="search" :disabled="searchDisabled"><v-icon>{{ $MDI.Magnify }}</v-icon>&nbsp;Search</v-btn>
<v-btn v-if="isMultimer" color="secondary" :block="false" x-large v-on:click="goToMultimer"><v-icon>{{ $MDI.Multimer }}</v-icon>&nbsp;Go to Multimer</v-btn>
</v-item-group>
<div :style="!$vuetify.breakpoint.xsOnly ? 'margin-left: 1em;' : 'margin-top: 1em;'">
<span><strong>Summary</strong></span><br>
Search <template v-if="taxFilter">
<strong>{{ taxFilter.text }}</strong> in
</template>
<template v-if="database.length == databases.length">
<strong>all available</strong> databases
<v-divider class="my-2"></v-divider>

<v-radio-group v-model="iterativeSearch">
<v-tooltip open-delay="300" top>
<template v-slot:activator="{ on }">
<label v-on="on">
Iterative search
<v-icon color="#FFFFFFB3" style="margin-top:-3px" small v-on="on">{{ $MDI.HelpCircleOutline }}</v-icon>
</label>
</template>
<span>Improve sensitivity of search by performing an iterative search (--num-iterations 3).</span>
</v-tooltip>

<v-radio label="On" :value="true"></v-radio>
<v-radio label="Off" :value="false"></v-radio>
</v-radio-group>
</div>
</panel>


</v-flex>
<v-flex>
<panel>
<template slot="content">
<div class="actions" :style="!$vuetify.breakpoint.xsOnly ?'display:flex; align-items: center;' : null">
<v-btn color="primary" :block="$vuetify.breakpoint.xsOnly" x-large v-on:click="search" :disabled="searchDisabled"><v-icon>{{ $MDI.Magnify }}</v-icon>&nbsp;Search</v-btn>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please restore previous changes

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 129 to 130


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove empty newlines

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 86 to 126
<v-tooltip v-if="!$ELECTRON && !hideEmail" open-delay="300" top>
<template v-slot:activator="{ on }">
<v-text-field v-on="on" label="Notification Email (Optional)" placeholder="[email protected]" v-model="email"></v-text-field>
</template>
<span>Send an email when the job is done.</span>
</v-tooltip>
</div>
</panel>
</v-flex>
<v-flex>
<panel>
<template slot="content">
<div class="actions" :style="!$vuetify.breakpoint.xsOnly ?'display:flex; align-items: center;' : null">
<v-item-group class="v-btn-toggle">
<v-btn color="primary" :block="false" x-large v-on:click="search" :disabled="searchDisabled"><v-icon>{{ $MDI.Magnify }}</v-icon>&nbsp;Search</v-btn>
<v-btn v-if="isMultimer" color="secondary" :block="false" x-large v-on:click="goToMultimer"><v-icon>{{ $MDI.Multimer }}</v-icon>&nbsp;Go to Multimer</v-btn>
</v-item-group>
<div :style="!$vuetify.breakpoint.xsOnly ? 'margin-left: 1em;' : 'margin-top: 1em;'">
<span><strong>Summary</strong></span><br>
Search <template v-if="taxFilter">
<strong>{{ taxFilter.text }}</strong> in
</template>
<template v-if="database.length == databases.length">
<strong>all available</strong> databases
<v-divider class="my-2"></v-divider>

<v-radio-group v-model="iterativeSearch">
<v-tooltip open-delay="300" top>
<template v-slot:activator="{ on }">
<label v-on="on">
Iterative search
<v-icon color="#FFFFFFB3" style="margin-top:-3px" small v-on="on">{{ $MDI.HelpCircleOutline }}</v-icon>
</label>
</template>
<span>Improve sensitivity of search by performing an iterative search (--num-iterations 3).</span>
</v-tooltip>

<v-radio label="On" :value="true"></v-radio>
<v-radio label="Off" :value="false"></v-radio>
</v-radio-group>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please keep email in addition to the new iterative search

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 80 to 106
:label="$STRINGS['MODE_TITLE_' + i]"
></v-radio>
</v-radio-group>
<div slot="content">
<!-- Mode Section -->
<v-radio-group v-model="mode">
<v-tooltip open-delay="300" top>
<template v-slot:activator="{ on }">
<label v-on="on">Mode&nbsp;<v-icon color="#FFFFFFB3" style="margin-top:-3px" small v-on="on">{{ $MDI.HelpCircleOutline }}</v-icon></label>
</template>
<span v-html="$STRINGS.MODE_HELP"></span>
</v-tooltip>
<v-radio hide-details
v-for="i in ($STRINGS.MODE_COUNT - 0)"
:key="i"
:value="$STRINGS['MODE_KEY_' + i]"
:label="$STRINGS['MODE_TITLE_' + i]">
</v-radio>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert the whitespace changes

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 50 to 93
<panel collapsible collapsed render-collapsed>
<template slot="header">
<template v-if="!$vuetify.breakpoint.smAndDown">
Databases
</template>
<template v-else>
DBs
</template>
&amp; search settings
</template>
<div slot="content">
<databases
:selected="database"
:all-databases="databases"
@update:selected="database = $event"
@update:all-databases="databases = $event"
:hideEmail="hideEmail"
></databases>
<div class="actions input-buttons-panel">
<div class="input-buttons-left">
<load-acession-button v-if="$APP == 'foldseek'" @select="query = $event" @loading="accessionLoading = $event" :preload-source="preloadSource" :preload-accession="preloadAccession"></load-acession-button>
<file-button id="file" :label="$STRINGS.UPLOAD_LABEL" v-on:upload="upload"></file-button>
<PredictStructureButton v-if="$APP == 'foldseek'" :query="query" v-model="predictable" v-on:predict="query = $event"></PredictStructureButton>
</div>
<file-button id="localFile" label="Upload previous results" @upload="uploadJSON"></file-button>
</div>
</template>
</panel>
</v-flex>
<v-flex xs12>
<!-- Databases Section -->
<panel collapsible collapsed>
<template slot="header">
<template v-if="!$vuetify.breakpoint.smAndDown">
Databases
</template>
<template v-else>
DBs
</template>
</template>
<div slot="content">
<!-- Existing Database Selection -->
<div class="input-group">
<v-tooltip open-delay="300" top>
<template v-slot:activator="{ on }">
<label v-on="on">Databases&nbsp;<v-icon color="#FFFFFFB3" style="margin-top:-3px" small v-on="on">{{ $MDI.HelpCircleOutline }}</v-icon></label>
</template>
<span v-if="$ELECTRON || hideEmail">Choose the databases to search against and the result mode.</span>
<span v-else>Choose the databases to search against, the result mode, and optionally an email to notify you when the job is done.</span>
</v-tooltip>
</div>

<template v-if="databases.length > 0">
<v-checkbox v-for="(db, index) in databases" v-model="database" :key="index" :value="db.path" :label="db.name + ' ' + db.version" :append-icon="(db.status == 'ERROR' || db.status == 'UNKNOWN') ? $MDI.AlertCircleOutline : ((db.status == 'PENDING' || db.status == 'RUNNING') ? $MDI.ProgressWrench : undefined)" :disabled="db.status != 'COMPLETE'" hide-details></v-checkbox>
</template>

<div v-if="databasesNotReady" class="alert alert-info mt-1">
<span>Databases are loading...</span>
</div>
</div>
</panel>

<v-radio-group v-model="mode">
<v-tooltip open-delay="300" top>
<template v-slot:activator="{ on }">
<label v-on="on">Mode&nbsp;<v-icon color="#FFFFFFB3" style="margin-top:-3px" small v-on="on">{{ $MDI.HelpCircleOutline }}</v-icon></label>
<!-- Search Parameters Section -->
<panel collapsible collapsed>
<template slot="header">
<template v-if="!$vuetify.breakpoint.smAndDown">
Search Parameters
</template>
<template v-else>
Params
</template>
</template>
<span v-html="$STRINGS.MODE_HELP"></span>
</v-tooltip>
<v-radio hide-details
v-for="i in ($STRINGS.MODE_COUNT - 0)"
:key="i"
:value="$STRINGS['MODE_KEY_' + i]"
:label="$STRINGS['MODE_TITLE_' + i]"
></v-radio>
</v-radio-group>
<div slot="content">
<!-- Mode Section -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert unrelated changes

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 43 to 44
<file-button id="localFile" label="Upload previous results" @upload="uploadJSON"></file-button>
</div>
</div>
</template>
</panel>
</v-flex>
<v-flex xs12>
<panel collapsible collapsed render-collapsed>
<template slot="header">
<template v-if="!$vuetify.breakpoint.smAndDown">
Databases
</template>
<template v-else>
DBs
</template>
&amp; search settings
</template>
<div slot="content">
<databases
:selected="database"
:all-databases="databases"
@update:selected="database = $event"
@update:all-databases="databases = $event"
:hideEmail="hideEmail"
></databases>
<div class="actions input-buttons-panel">
<div class="input-buttons-left">
<load-acession-button v-if="$APP == 'foldseek'" @select="query = $event" @loading="accessionLoading = $event" :preload-source="preloadSource" :preload-accession="preloadAccession"></load-acession-button>
<file-button id="file" :label="$STRINGS.UPLOAD_LABEL" v-on:upload="upload"></file-button>
<PredictStructureButton v-if="$APP == 'foldseek'" :query="query" v-model="predictable" v-on:predict="query = $event"></PredictStructureButton>
</div>
<file-button id="localFile" label="Upload previous results" @upload="uploadJSON"></file-button>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert unrelated changes

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 243 to 254
if (localStorageEnabled && localStorage.database) {
this.database = JSON.parse(localStorage.database);
}
if (localStorageEnabled && localStorage.databases) {
this.databases = JSON.parse(localStorage.databases);
}
if (localStorageEnabled && localStorage.iterativeSearch) {
this.iterativeSearch = JSON.parse(localStorage.iterativeSearch);
}
if (localStorageEnabled && localStorage.taxFilter) {
this.taxFilter = JSON.parse(localStorage.taxFilter);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should be set somewhere else, they were removed in the last refactoring

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@milot-mirdita milot-mirdita merged commit 23a713a into soedinglab:master Dec 27, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants